/*
 * Copyright (c) 2012 Universidad Antonio de Nebrija.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Apache License v2.0
 * which accompanies this distribution, and is available at
 * http://www.apache.org/licenses/LICENSE-2.0.html
 * 
 * Contributors:
 *    Universidad Antonio de Nebrija - initial API, implementation and documentation
 */
package com.nebrija.riif.cli;

import java.util.ArrayList;

/**
 * Interface for the command pattern
 * @author asanchep
 *
 */
public interface Command {
	/**
	 * Method that receives a list of parameters and execute a particular functionality
	 * @param params the parameters
	 * @return the result of the execution
	 * @throws CommandException An exception with the error message
	 */
	public String execute(ArrayList<String> params) throws CommandException;
	
	/**
	 * Command to provide help
	 * @return a help string for a command
	 * @throws CommandException
	 */
	public String helpString() throws CommandException;
}
